package Level02.Four;

/**
 * 第二个线程：运行后，将一个计数器 + 1，之后再唤醒等待的线程。
 * 主线程中：休息 2 秒，让两个线程全部执行完毕，打印“计数器”的结果。
 * 注意：第二个线程使用的计数器，要定义在线程外部。
 */
public class Add implements Runnable {
    private static Integer count = 0;


    @Override
    public void run() {
        int sum = new Traversal().getSum();
        while (true) {
            synchronized (Object.class) {
                count++;
                //唤醒其他等待线程
                Object.class.notify();
                System.out.println("符合条件的数字有:"+count+"个");
                //进入等待状态
                try {
                    Object.class.wait();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                //加入条件判断，那种情况下，退出while循环
                if (sum == 1000) {
                    break;
                }
            }

        }
    }
}
